<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

class Reporte extends CI_Controller {

    function __construct() {
        parent::__construct();
       include(RUTA_LIBRERIA."pChart/pData.class");
        include(RUTA_LIBRERIA."pChart/pChart.class");
        require('PDFReport.php');
       $this->load->model('pedido_model');
       $this->load->model('reporte_model');
    }
    public function reportePedidos()
    {
        $login=$this->loggedIn();
        $session_data = $this->session->userdata['logged_in'];
        
        $args['errorMsg'] = '';
        $args['title'] = 'Pedidos';
        $args['content'] = 'reporte/reportePedidos';  
        $args['username'] = $login['username'];
        $this->load->view('view',$args);       

    }
    public function reporteDemanda()
    {
        $login=$this->loggedIn();
        $session_data = $this->session->userdata['logged_in'];
        
        $args['errorMsg'] = '';
        $args['title'] = 'Demanda';
        $args['content'] = 'reporte/reporteDemanda';  
        $args['username'] = $login['username'];
        $this->load->view('view',$args);       

    }
    public function reporteProduc()
    {
        $login=$this->loggedIn();
        $session_data = $this->session->userdata['logged_in'];
        
        $args['errorMsg'] = '';
        $args['title'] = 'Produccion';
        $args['content'] = 'reporte/reporteProduc';  
        $args['username'] = $login['username'];
        $this->load->view('view',$args);       

    }
    public function reporteTiempos()
    {
        $login=$this->loggedIn();
        $session_data = $this->session->userdata['logged_in'];
        $user=$session_data['user_id'];//$this->input->post('adel');        
        $args['options']=$this->pedido_model->comboTrabajosAll($user);
        $args['errorMsg'] = '';
        $args['title'] = 'Tiempos';
        $args['content'] = 'reporte/reporteTiempos';  
        $args['username'] = $login['username'];
        $this->load->view('view',$args);       

    }
    public function reporteUtil()
    {
        $login=$this->loggedIn();
        $session_data = $this->session->userdata['logged_in'];
        
        $args['errorMsg'] = '';
        $args['title'] = 'Utilidad';
        $args['content'] = 'reporte/reporteUtil';  
        $args['username'] = $login['username'];
        $this->load->view('view',$args);       

    }
    function dameFecha($fecha,$dia,$mes,$anio)
    {   list($year,$mon,$day) = explode('-',$fecha);

        return date('Y-m-d',mktime(0,0,0,$mon+$mes,$day+$dia,$year+$anio));       

    }
    function reportes($nomDoc,$rutaImagen,$titulo,$cabecera,$data){
        $pdf=new PDFReport();
        $pdf->crearPdf($titulo,$rutaImagen,$cabecera,$data);
        $pdf->Output($nomDoc.'.pdf', 'I');
    }
    
    public function generarIntervalos($inicio,$fin,$indicaInterval){
        $fechaIni= $inicio;
        $fechaFin=  $fin;        
        $intervalos=array();
        $parar=false;
        $punto=array();
        if($indicaInterval=='A'){ //para intervalos anuales
            $anioFin=date('Y', strtotime($fechaFin));
            $auxFechIni= $fechaIni;            
            while(!$parar){
                $newFecFin='';
                $anioIni=date('Y', strtotime($auxFechIni));
                if($anioFin!=$anioIni){//se va obteniendo el año hasta el 31 de diciembre
                    $newFecFin=date('Y-m-d', strtotime($anioIni.'-12-31'));
                    $punto=array('inicio'=>$auxFechIni,'fin'=>$newFecFin);
                    $auxFechIni=date('Y-m-d', strtotime(($anioIni+1).'-01-01'));
                    array_push($intervalos, $punto);
                    
                }
                else{//si se llega al año fin
                     $newFecFin=$fechaFin;
                     $punto=array('inicio'=>$auxFechIni,'fin'=>$newFecFin);
                     array_push($intervalos, $punto);
                     $parar=true;
                    
                }
             }
        } else{
            $mesFin=date('n', strtotime($fechaFin));
            $anioFin=date('Y', strtotime($fechaFin));
            $auxFechIni= $fechaIni;
            while(!$parar){
                $newMesFin='';                
                $mesIni=date('n', strtotime($auxFechIni));
                $anio=date('Y', strtotime($auxFechIni));
                if(!($mesIni==$mesFin && $anioFin==$anio) ){//se va obteniendo el año hasta el 31 de diciembre                    
                    $cantDias=date('t', strtotime($auxFechIni));
                    $newMesFin=date('Y-m-d', strtotime($anio.'-'.$mesIni.'-'.$cantDias));
                    $punto=array('inicio'=>$auxFechIni,'fin'=>$newMesFin);                   
                    if($mesIni==12){
                        $auxFechIni=date('Y-m-d', strtotime(($anio+1).'-1-1'));                        
                    }
                    else $auxFechIni=date('Y-m-d', strtotime($anio.'-'.($mesIni+1).'-1'));
                    
                    array_push($intervalos,$punto);
                    
                }
                else{//si se llega al año fin
                     $newFecFin=$fechaFin;
                     $punto=array('inicio'=>$auxFechIni,'fin'=>$newFecFin);
                     array_push($intervalos, $punto);
                     $parar=true;                     
                }
             }
        }          
        return $intervalos;        
    }
    public function generarTabla($cabeceras,$estilo,$nombTabla,$valores){
        $cad="<table  class='$estilo'><thead><tr>";
        foreach($cabeceras as $cabe){
            $cad=$cad."<th>$cabe</th>";
        }
        $cad=$cad."</tr></thead><tbody name='$nombTabla' id='$nombTabla'>";
        foreach($valores as $val){
            $cad=$cad."<tr>";
            for($i=0;$i<count($val);$i++){
                $cad=$cad."<td align='center' valign='middle'>$val[$i]</td>";
            }
            $cad=$cad."</tr>";
        }
        $cad=$cad."</tbody></table>";
        return $cad;
    }
    public function generarReportPedidos(){
        $inicio= $this->input->get('inicio');
        $fin= $this->input->get('fin');       
        $fechaIni=  date('Y-m-d', strtotime($inicio));
        $fechaFin=  date('Y-m-d', strtotime($fin));
        $session_data = $this->session->userdata['logged_in'];
        $user=$session_data['user_id'];//$this->input->post('adel');       
        $estados=$this->reporte_model->EstadosPedidos();       
        $numElem=count($estados);
        $valoresTabla=array();        
        $cabeceras=array();
         // Definición de datos
        $DataSet = new pData;
        $valores=array();
        $etiquetas=array();  
        $suma=0;
        for($i=0;$i<$numElem;$i++){
            $est=$estados[$i];
            $cantidad=array();
            if($i!=($numElem-1)){
                $cantidad= $this->reporte_model->CantPedidos($fechaIni,$fechaFin,$user,false,$est['IdEstadoPedido']);
            }
            else $cantidad= $this->reporte_model->CantPedidos($fechaIni,$fechaFin,$user,true,$est['IdEstadoPedido']);
            $cant=0;
            $etique=$est['Descripcion'];
            if(count($cantidad)!=0){
                $cant=$cantidad[0]['cant'];//utilidad en miles
            }
            $suma+=intval($cant);
            array_push($valores,$cant);
            $fila=array($est['Descripcion'],$cant);
            array_push($valoresTabla, $fila);
            unset($fila);          
            array_push($etiquetas, $etique);
            
        }
        
        array_push($cabeceras,'Estado','Número de Pedido');
        if($suma!=0){
            $DataSet->AddPoint($valores,"Serie1");  
            $DataSet->AddPoint($etiquetas,"Serie2");
        }
        else{
            $DataSet->AddPoint(100,"Serie1");  
            $DataSet->AddPoint('Ninguno',"Serie2");
        }
          
        $DataSet->AddAllSeries();
       
        $DataSet->SetAbsciseLabelSerie("Serie2"); 
        // Se inicializa el gráfico
         $Test = new pChart(380,200);  
        $Test->drawFilledRoundedRectangle(7,7,373,193,5,240,240,240);  
        $Test->drawRoundedRectangle(5,5,375,195,5,230,230,230);  
         // Draw the 0 line
        $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",8);  
        $Test->drawPieGraph($DataSet->GetData(),$DataSet->GetDataDescription(),150,90,110,PIE_PERCENTAGE,TRUE,50,20,5);  
        $Test->drawPieLegend(310,15,$DataSet->GetData(),$DataSet->GetDataDescription(),250,250,250);
        $Test->Render(RUTA_IMAGENES."Pedidos".$user.".png"); 
        
        //se envia el contenido
        $cad='';
        
        $cad=$this->generarTabla($cabeceras,'table table-bordered','pedidos',$valoresTabla);
       
        echo '<a href="#" class="thumbnail" ><img src="'.base_url().RUTA_IMAGENES.'Pedidos'.$user.'.png " alt> </a>'.$cad;
    }
    public function generarReportDemanda(){
        $inicio= $this->input->get('inicio');
        $fin= $this->input->get('fin');    
        $intervalo= $this->input->get('intervalo');  
        $fechaIni=  date('Y-m-d', strtotime($inicio));
        $fechaFin=  date('Y-m-d', strtotime($fin));
        $session_data = $this->session->userdata['logged_in'];
        $user=$session_data['user_id'];
        $intervalos=$this->generarIntervalos($fechaIni, $fechaFin, $intervalo);       
        $numElem=count($intervalos);
        $valoresTabla=array();
  
        $cabeceras=array('Categorías');
         // Definición de datos
        $DataSet = new pData;
        $puntos=array();
        $etiquetas=array();
        $m=1;
       $val=array();
       $categorias=$this->pedido_model->comboTrabajosAll($user); 
        foreach($categorias as $categ){//se calcula el indicador por cada trabajo
            $val=array();
            $puntos=array();                       
            array_push($val,$categ['label']);            
            for($i=0;$i<$numElem;$i++){//se obtiene los indicadores por cada intervalo            
            $nuevoInterval=$intervalos[$i];
            $cantTrabajos=array();            
            if($i!=($numElem-1)){
            $cantTrabajos= $this->reporte_model->CantTrabajos($fechaIni,$fechaFin,$user,false,$categ['value']);
            }
            else $cantTrabajos= $this->reporte_model->CantTrabajos($fechaIni,$fechaFin,$user,true,$categ['value']);
            $cant=0;
            if(count($cantTrabajos)!=0){
                $number=$cantTrabajos[0]['suma'];
                $$cant=$number;//indicador en porcentaje
            }
            array_push($puntos, $cant);
            array_push($val,$$cant);//para la tabla
            }
            array_push($valoresTabla,$val); 
            unset($val);//para la tabla
           $DataSet->AddPoint($puntos,"Serie".$m);
           unset($puntos);//para la tabla
           $DataSet->SetSerieName($categ['label'],"Serie".$m);
           $DataSet->AddSerie("Serie".$m);
           $m++;
        }
         $etique='';
         
          for($i=0;$i<$numElem;$i++){//se forma las etiquetas
              $nuevoInterval=$intervalos[$i];
              if($intervalo=='A'){
                $etique=date('Y', strtotime($nuevoInterval['inicio']));
            }
            else {
                $anio=date('Y', strtotime($nuevoInterval['inicio']));
                $mes=date('m', strtotime($nuevoInterval['inicio']));
                $etique=$mes.' / '.$anio;
            }
            array_push($etiquetas, $etique);
            array_push($cabeceras,$etique); //Cabeceras para las tablas
          }
         
          $DataSet->AddPoint($etiquetas,"Serie".$m);          
          $DataSet->SetAbsciseLabelSerie("Serie".$m);           
        $nomX='';
        if($intervalo=='A'){
                $nomX='Años';
            }
            else {
                 $nomX='Meses';
            }
        $DataSet->SetXAxisName($nomX);  
        $DataSet->SetYAxisName("Cantidad Trabajos");  
        // Se inicializa el gráfico
         $Test = new pChart(700,230);  
        $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",8);  
        $Test->setGraphArea(50,30,680,200);  
        $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240);  
        $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230);  
        $Test->drawGraphArea(255,255,255,TRUE);
        $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_ADDALL,150,150,150,TRUE,0,2,TRUE);  
        $Test->drawGrid(4,TRUE,230,230,230,50); 
         // Draw the 0 line
        $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",6);  
        $Test->drawTreshold(0,143,55,72,TRUE,TRUE);
         // Draw the bar graph  
        $Test->drawStackedBarGraph($DataSet->GetData(),$DataSet->GetDataDescription(),TRUE); 
        // Write values on Serie1 & Serie2  
        $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",8);     
        $Test->writeValues($DataSet->GetData(),$DataSet->GetDataDescription(),"Serie3"); 
        // Finish the graph  
        $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",8);  
        $Test->drawLegend(596,150,$DataSet->GetDataDescription(),255,255,255);  
        $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",10);  
        $Test->drawTitle(50,22,"Trabajos",50,50,50,585);  
        $Test->Render(RUTA_IMAGENES."Trabajos".$user.".png");  
        //se envia el contenido
        
        $cad=$this->generarTabla($cabeceras,'table table-bordered','trabajos',$valoresTabla);
        
        echo '<a href="#" class="thumbnail" ><img src="'.base_url().RUTA_IMAGENES.'Trabajos'.$user.'.png " alt> </a>'.$cad;
    }
    public function generarReportUtil(){
        
        $inicio= $this->input->get('inicio');
        $fin= $this->input->get('fin');
        $intervalo= $this->input->get('intervalo');
        $fechaIni=  date('Y-m-d', strtotime($inicio));
        $fechaFin=  date('Y-m-d', strtotime($fin));
        $session_data = $this->session->userdata['logged_in'];
        $user=$session_data['user_id'];//$this->input->post('adel');       
        $intervalos=$this->generarIntervalos($fechaIni, $fechaFin, $intervalo);       
        $numElem=count($intervalos);
        $valoresTabla=array();
        
        $cabeceras=array();
         // Definición de datos
        $DataSet = new pData;
        $puntos=array();
        $etiquetas=array();
        for($i=0;$i<$numElem;$i++){
            $val=array();
            $nuevoInterval=$intervalos[$i];
            $utilidad=array();
            if($i!=($numElem-1)){
                $utilidad= $this->reporte_model->Utilidad($nuevoInterval['inicio'],$nuevoInterval['fin'],$user,false);
            }
            else $utilidad= $this->reporte_model->Utilidad($nuevoInterval['inicio'],$nuevoInterval['fin'],$user,true);
            $util=0;
            $etique='';
            if(count($utilidad)!=0){
                $util=floatval ($utilidad[0]['util'])/1000;//utilidad en miles
            }
            
            if($intervalo=='A'){
                $etique=date('Y', strtotime($nuevoInterval['inicio']));
            }
            else {
                $anio=date('Y', strtotime($nuevoInterval['inicio']));
                $mes=date('m', strtotime($nuevoInterval['inicio']));
                $etique=$mes.' / '.$anio;
            }
            array_push($val,$nuevoInterval['inicio'], $nuevoInterval['fin'],$util);
            array_push($valoresTabla,$val); 
            unset($val);
            array_push($puntos, $util);
            array_push($etiquetas, $etique);
        }
        array_push($cabeceras,'Fecha Inicio','Fecha Fin','Utilidad (Miles S/.)');       
        $DataSet->AddPoint($puntos,"Serie1");
        $DataSet->AddPoint($etiquetas,"Serie2");
        $DataSet->AddSerie("Serie1");
        $DataSet->SetAbsciseLabelSerie("Serie2");        
        $DataSet->SetSerieName("Utilidad","Serie1");
        $DataSet->SetXAxisFormat("Meses");
        $nomX='';
        if($intervalo=='A'){
                $nomX='Años';
            }
            else {
                 $nomX='Meses';
            }
        $DataSet->SetXAxisName($nomX);  
        $DataSet->SetYAxisName("Miles(S/.)");  
        // Se inicializa el gráfico
        $Test = new pChart(700,230);
        $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",8);
        $Test->setGraphArea(50,30,680,200);
        $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240);
        $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230);
        $Test->drawGraphArea(255,255,255,TRUE);
        $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_ADDALL,150,150,150,TRUE,0,2,TRUE);
        $Test->drawGrid(4,TRUE,230,230,230,50);
         // Draw the 0 line
        $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",6);
        $Test->drawTreshold(0,143,55,72,TRUE,TRUE);
         // Draw the bar graph
         $Test->drawStackedBarGraph($DataSet->GetData(),$DataSet->GetDataDescription(),100);
         // Finish the graph
        $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",8);
        $Test->drawLegend(10,10,$DataSet->GetDataDescription(),255,255,255);
        $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",10);
        $Test->drawTitle(50,22,"Utilidad",50,50,50,585);
        $Test->Render(RUTA_IMAGENES."Utilidad".$user.".png");
        
        //se envia el contenido
        $cad=$this->generarTabla($cabeceras,'table table-bordered','utilidad',$valoresTabla);
        echo '<a href="#" class="thumbnail" ><img src="'.base_url().RUTA_IMAGENES.'Utilidad'.$user.'.png " alt> </a>'.$cad;
    }
    
    public function generarReportTiempos(){
         $inicio= $this->input->get('inicio');
        $fin= $this->input->get('fin');
        $intervalo= $this->input->get('intervalo');
        $trabajos= $this->input->get('trab');
        $fechaIni=  date('Y-m-d', strtotime($inicio));
        $fechaFin=  date('Y-m-d', strtotime($fin));
        $session_data = $this->session->userdata['logged_in'];
        $user=$session_data['user_id'];       
              
        $intervalos=$this->generarIntervalos($fechaIni, $fechaFin, $intervalo);       
        $numElem=count($intervalos);
        $valoresTabla=array();
  
        $cabeceras=array('Trabajos');
         // Definición de datos
        $DataSet = new pData;
        $puntos=array();
        $etiquetas=array();
        $m=1;
       $val=array();
        foreach($trabajos as $trab){//se calcula el indicador por cada trabajo
            $val=array();
            $puntos=array();
            $nomtrab=$this->pedido_model->obtenTrabajo($user,$trab);            
            array_push($val,$nomtrab[0]['nom']);            
            for($i=0;$i<$numElem;$i++){//se obtiene los indicadores por cada intervalo
            
            $nuevoInterval=$intervalos[$i];
            $indicxTrab=array();            
                if($i!=($numElem-1)){
                $indicxTrab= $this->reporte_model->CacularIndicador($nuevoInterval['inicio'],$nuevoInterval['fin'],$user,0,$trab);
                }
                else $indicxTrab= $this->reporte_model->CacularIndicador($nuevoInterval['inicio'],$nuevoInterval['fin'],$user,1,$trab);
                $indica=0;
                if(count($indicxTrab)!=0){
                    $number=floatval($indicxTrab[0]['indicador'])*100;
                    $indica=number_format($number,2,'.','');//indicador en porcentaje
                }
                array_push($puntos, $indica);
                array_push($val,$indica);//para la tabla
            }
            array_push($valoresTabla,$val); 
            unset($val);//para la tabla
           $DataSet->AddPoint($puntos,"Serie".$m);
           unset($puntos);//para la tabla
           $DataSet->SetSerieName($nomtrab[0]['nom'],"Serie".$m);
           $DataSet->AddSerie("Serie".$m);
           $m++;
        }
         $etique='';
         
          for($i=0;$i<$numElem;$i++){//se forma las etiquetas
              $nuevoInterval=$intervalos[$i];
              if($intervalo=='A'){
                $etique=date('Y', strtotime($nuevoInterval['inicio']));
            }
            else {
                $anio=date('Y', strtotime($nuevoInterval['inicio']));
                $mes=date('m', strtotime($nuevoInterval['inicio']));
                $etique=$mes.' / '.$anio;
            }
            array_push($etiquetas, $etique);
            array_push($cabeceras,$etique); //Cabeceras para las tablas
          }
         
          $DataSet->AddPoint($etiquetas,"Serie".$m);          
          $DataSet->SetAbsciseLabelSerie("Serie".$m);           
        $nomX='';
        if($intervalo=='A'){
                $nomX='Años';
            }
            else {
                 $nomX='Meses';
            }
        $DataSet->SetXAxisName($nomX);  
        $DataSet->SetYAxisName("Índice");  
        // Se inicializa el gráfico
        $Test = new pChart(700,230);
        $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",8);
        $Test->setGraphArea(70,30,680,200);     
        $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240);     
        $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230);     
        $Test->drawGraphArea(255,255,255,TRUE);
        $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,0,2);     
        $Test->drawGrid(4,TRUE,230,230,230,50); 
         // Draw the 0 line
        $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",6);     
        $Test->drawTreshold(0,143,55,72,TRUE,TRUE); 
          // Draw the line graph  
        $Test->drawLineGraph($DataSet->GetData(),$DataSet->GetDataDescription());     
        $Test->drawPlotGraph($DataSet->GetData(),$DataSet->GetDataDescription(),3,2,255,255,255); 
         // Finish the graph
        $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",8);     
        $Test->drawLegend(75,35,$DataSet->GetDataDescription(),255,255,255);     
        $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",10);     
        $Test->drawTitle(60,22,"Tiempos",50,50,50,585);     
        $Test->Render(RUTA_IMAGENES."Tiempos".$user.".png");
        
        //se envia el contenido
        $cad=$this->generarTabla($cabeceras,'table table-bordered','utilidad',$valoresTabla);
        echo '<a href="#" class="thumbnail" ><img src="'.base_url().RUTA_IMAGENES.'Tiempos'.$user.'.png " alt> </a>'.$cad;
  }
  public function generarReportProducc(){
        $inicio= $this->input->get('inicio');
        $fin= $this->input->get('fin');       
        $fechaIni=  date('Y-m-d', strtotime($inicio));
        $fechaFin=  date('Y-m-d', strtotime($fin));
        $session_data = $this->session->userdata['logged_in'];
        $user=$session_data['user_id'];//$this->input->post('adel');       
        $estados=$this->reporte_model->CategoriaPedidos();       
        $numElem=count($estados);
        $valoresTabla=array();        
        $cabeceras=array();
         // Definición de datos
        $DataSet = new pData;
        $valores=array();
        $etiquetas=array();  
        $suma=0;
        for($i=0;$i<$numElem;$i++){
            $est=$estados[$i];
            $cantidad=array();
            if($i!=($numElem-1)){
                $cantidad= $this->reporte_model->CantItem($fechaIni,$fechaFin,$user,false,$est['IdCategoria']);
            }
            else $cantidad= $this->reporte_model->CantItem($fechaIni,$fechaFin,$user,true,$est['IdCategoria']);
            $cant=0;
            $etique=$est['Nombre'];
            if(count($cantidad)!=0){
                $cant=$cantidad[0]['cant'];//utilidad en miles
            }
            $suma+=intval($cant);
            array_push($valores,$cant);
            $fila=array($est['Nombre'],$cant);
            array_push($valoresTabla, $fila);
            unset($fila);          
            array_push($etiquetas, $etique);
            
        }
        array_push($cabeceras,'Categoría','Número de Itemes');
        if($suma!=0){
            $DataSet->AddPoint($valores,"Serie1");  
            $DataSet->AddPoint($etiquetas,"Serie2");
        }
        else{
            $DataSet->AddPoint(100,"Serie1");  
            $DataSet->AddPoint('Ninguno',"Serie2");
        }
          
        $DataSet->AddAllSeries();
       
        $DataSet->SetAbsciseLabelSerie("Serie2"); 
        // Se inicializa el gráfico
         $Test = new pChart(380,200);  
        $Test->drawFilledRoundedRectangle(7,7,373,193,5,240,240,240);  
        $Test->drawRoundedRectangle(5,5,375,195,5,230,230,230);  
         // Draw the 0 line
        $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",8);  
        $Test->drawPieGraph($DataSet->GetData(),$DataSet->GetDataDescription(),150,90,110,PIE_PERCENTAGE,TRUE,50,20,5);  
        $Test->drawPieLegend(310,15,$DataSet->GetData(),$DataSet->GetDataDescription(),250,250,250);
        $Test->Render(RUTA_IMAGENES."Produccion".$user.".png"); 
        
        //se envia el contenido
        $cad='';
       
            $cad=$this->generarTabla($cabeceras,'table table-bordered','produccion',$valoresTabla);
        
        echo '<a href="#" class="thumbnail" ><img src="'.base_url().RUTA_IMAGENES.'Produccion'.$user.'.png " alt> </a>'.$cad;
    }
    
     public function generarTiempos($inicio,$fin,$intervalo,$trabajos){
        $fechaIni=  date('Y-m-d', strtotime($inicio));
        $fechaFin=  date('Y-m-d', strtotime($fin));
        $session_data = $this->session->userdata['logged_in'];
        $user=$session_data['user_id'];       
              
        $intervalos=$this->generarIntervalos($fechaIni, $fechaFin, $intervalo);       
        $numElem=count($intervalos);
      
         // Definición de datos
        $DataSet = new pData;
        $puntos=array();
        $etiquetas=array();
        $m=1;
       $val=array();
        foreach($trabajos as $trab){//se calcula el indicador por cada trabajo
            $val=array();
            $puntos=array();
            $nomtrab=$this->pedido_model->obtenTrabajo($user,$trab);            
                      
            for($i=0;$i<$numElem;$i++){//se obtiene los indicadores por cada intervalo
            
            $nuevoInterval=$intervalos[$i];
            $indicxTrab=array();            
                if($i!=($numElem-1)){
                $indicxTrab= $this->reporte_model->CacularIndicador($nuevoInterval['inicio'],$nuevoInterval['fin'],$user,0,$trab);
                }
                else $indicxTrab= $this->reporte_model->CacularIndicador($nuevoInterval['inicio'],$nuevoInterval['fin'],$user,1,$trab);
                $indica=0;
                if(count($indicxTrab)!=0){
                    $number=floatval($indicxTrab[0]['indicador'])*100;
                    $indica=number_format($number,2,'.','');//indicador en porcentaje
                }
                array_push($puntos, $indica);
                
            }
            
           $DataSet->AddPoint($puntos,"Serie".$m);
           unset($puntos);//para la tabla
           $DataSet->SetSerieName($nomtrab[0]['nom'],"Serie".$m);
           $DataSet->AddSerie("Serie".$m);
           $m++;
        }
         $etique='';
         
          for($i=0;$i<$numElem;$i++){//se forma las etiquetas
              $nuevoInterval=$intervalos[$i];
              if($intervalo=='A'){
                $etique=date('Y', strtotime($nuevoInterval['inicio']));
            }
            else {
                $anio=date('Y', strtotime($nuevoInterval['inicio']));
                $mes=date('m', strtotime($nuevoInterval['inicio']));
                $etique=$mes.' / '.$anio;
            }
            array_push($etiquetas, $etique);
           
          }
         
          $DataSet->AddPoint($etiquetas,"Serie".$m);          
          $DataSet->SetAbsciseLabelSerie("Serie".$m);           
        $nomX='';
        if($intervalo=='A'){
                $nomX='Años';
            }
            else {
                 $nomX='Meses';
            }
        $DataSet->SetXAxisName($nomX);  
        $DataSet->SetYAxisName("Índice");  
        // Se inicializa el gráfico
        $Test = new pChart(700,230);
        $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",8);
        $Test->setGraphArea(70,30,680,200);     
        $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240);     
        $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230);     
        $Test->drawGraphArea(255,255,255,TRUE);
        $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,0,2);     
        $Test->drawGrid(4,TRUE,230,230,230,50); 
         // Draw the 0 line
        $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",6);     
        $Test->drawTreshold(0,143,55,72,TRUE,TRUE); 
          // Draw the line graph  
        $Test->drawLineGraph($DataSet->GetData(),$DataSet->GetDataDescription());     
        $Test->drawPlotGraph($DataSet->GetData(),$DataSet->GetDataDescription(),3,2,255,255,255); 
         // Finish the graph
        $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",8);     
        $Test->drawLegend(75,35,$DataSet->GetDataDescription(),255,255,255);     
        $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",10);     
        $Test->drawTitle(60,22,"Tiempos",50,50,50,585);     
        $Test->Render(RUTA_IMAGENES."Tiempos".$user.".png");
     }
      public function generarProducción($inicio,$fin){
          $fechaIni=  date('Y-m-d', strtotime($inicio));
        $fechaFin=  date('Y-m-d', strtotime($fin));
        $session_data = $this->session->userdata['logged_in'];
        $user=$session_data['user_id'];//$this->input->post('adel');       
        $estados=$this->reporte_model->CategoriaPedidos();       
        $numElem=count($estados);
        
         // Definición de datos
        $DataSet = new pData;
        $valores=array();
        $etiquetas=array();  
        $suma=0;
        for($i=0;$i<$numElem;$i++){
            $est=$estados[$i];
            $cantidad=array();
            if($i!=($numElem-1)){
                $cantidad= $this->reporte_model->CantItem($fechaIni,$fechaFin,$user,false,$est['IdCategoria']);
            }
            else $cantidad= $this->reporte_model->CantItem($fechaIni,$fechaFin,$user,true,$est['IdCategoria']);
            $cant=0;
            $etique=$est['Nombre'];
            if(count($cantidad)!=0){
                $cant=$cantidad[0]['cant'];//utilidad en miles
            }
            $suma+=intval($cant);
            array_push($valores,$cant);
                     
            array_push($etiquetas, $etique);
            
        }
       
        if($suma!=0){
            $DataSet->AddPoint($valores,"Serie1");  
            $DataSet->AddPoint($etiquetas,"Serie2");
        }
        else{
            $DataSet->AddPoint(100,"Serie1");  
            $DataSet->AddPoint('Ninguno',"Serie2");
        }
          
        $DataSet->AddAllSeries();
       
        $DataSet->SetAbsciseLabelSerie("Serie2"); 
        // Se inicializa el gráfico
         $Test = new pChart(380,200);  
        $Test->drawFilledRoundedRectangle(7,7,373,193,5,240,240,240);  
        $Test->drawRoundedRectangle(5,5,375,195,5,230,230,230);  
         // Draw the 0 line
        $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",8);  
        $Test->drawPieGraph($DataSet->GetData(),$DataSet->GetDataDescription(),150,90,110,PIE_PERCENTAGE,TRUE,50,20,5);  
        $Test->drawPieLegend(310,15,$DataSet->GetData(),$DataSet->GetDataDescription(),250,250,250);
        $Test->Render(RUTA_IMAGENES."Produccion".$user.".png"); 
      }
      public function generarPedidos($inicio,$fin){
          $fechaIni=  date('Y-m-d', strtotime($inicio));
        $fechaFin=  date('Y-m-d', strtotime($fin));
        $session_data = $this->session->userdata['logged_in'];
        $user=$session_data['user_id'];//$this->input->post('adel');       
        $estados=$this->reporte_model->CategoriaPedidos();       
        $numElem=count($estados);
 
         // Definición de datos
        $DataSet = new pData;
        $valores=array();
        $etiquetas=array();  
        $suma=0;
        for($i=0;$i<$numElem;$i++){
            $est=$estados[$i];
            $cantidad=array();
            if($i!=($numElem-1)){
                $cantidad= $this->reporte_model->CantItem($fechaIni,$fechaFin,$user,false,$est['IdCategoria']);
            }
            else $cantidad= $this->reporte_model->CantItem($fechaIni,$fechaFin,$user,true,$est['IdCategoria']);
            $cant=0;
            $etique=$est['Nombre'];
            if(count($cantidad)!=0){
                $cant=$cantidad[0]['cant'];//utilidad en miles
            }
            $suma+=intval($cant);
            array_push($valores,$cant);
           
                   
            array_push($etiquetas, $etique);
            
        }
        
        if($suma!=0){
            $DataSet->AddPoint($valores,"Serie1");  
            $DataSet->AddPoint($etiquetas,"Serie2");
        }
        else{
            $DataSet->AddPoint(100,"Serie1");  
            $DataSet->AddPoint('Ninguno',"Serie2");
        }
          
        $DataSet->AddAllSeries();
       
        $DataSet->SetAbsciseLabelSerie("Serie2"); 
        // Se inicializa el gráfico
         $Test = new pChart(380,200);  
        $Test->drawFilledRoundedRectangle(7,7,373,193,5,240,240,240);  
        $Test->drawRoundedRectangle(5,5,375,195,5,230,230,230);  
         // Draw the 0 line
        $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",8);  
        $Test->drawPieGraph($DataSet->GetData(),$DataSet->GetDataDescription(),150,90,110,PIE_PERCENTAGE,TRUE,50,20,5);  
        $Test->drawPieLegend(310,15,$DataSet->GetData(),$DataSet->GetDataDescription(),250,250,250);
        $Test->Render(RUTA_IMAGENES."Pedidos".$user.".png"); 
      }
       public function generarUtil($inicio,$fin,$intervalo){
           $fechaIni=  date('Y-m-d', strtotime($inicio));
        $fechaFin=  date('Y-m-d', strtotime($fin));
        $session_data = $this->session->userdata['logged_in'];
        $user=$session_data['user_id'];//$this->input->post('adel');       
        $intervalos=$this->generarIntervalos($fechaIni, $fechaFin, $intervalo);       
        $numElem=count($intervalos);
        
        
        $cabeceras=array();
         // Definición de datos
        $DataSet = new pData;
        $puntos=array();
        $etiquetas=array();
        for($i=0;$i<$numElem;$i++){
            
            $nuevoInterval=$intervalos[$i];
            $utilidad=array();
            if($i!=($numElem-1)){
                $utilidad= $this->reporte_model->Utilidad($nuevoInterval['inicio'],$nuevoInterval['fin'],$user,false);
            }
            else $utilidad= $this->reporte_model->Utilidad($nuevoInterval['inicio'],$nuevoInterval['fin'],$user,true);
            $util=0;
            $etique='';
            if(count($utilidad)!=0){
                $util=floatval ($utilidad[0]['util'])/1000;//utilidad en miles
            }
            
            if($intervalo=='A'){
                $etique=date('Y', strtotime($nuevoInterval['inicio']));
            }
            else {
                $anio=date('Y', strtotime($nuevoInterval['inicio']));
                $mes=date('m', strtotime($nuevoInterval['inicio']));
                $etique=$mes.' / '.$anio;
            }
           
            array_push($puntos, $util);
            array_push($etiquetas, $etique);
        }
        array_push($cabeceras,'Fecha Inicio','Fecha Fin','Utilidad (Miles S/.)');       
        $DataSet->AddPoint($puntos,"Serie1");
        $DataSet->AddPoint($etiquetas,"Serie2");
        $DataSet->AddSerie("Serie1");
        $DataSet->SetAbsciseLabelSerie("Serie2");        
        $DataSet->SetSerieName("Utilidad","Serie1");
        $DataSet->SetXAxisFormat("Meses");
        $nomX='';
        if($intervalo=='A'){
                $nomX='Años';
            }
            else {
                 $nomX='Meses';
            }
        $DataSet->SetXAxisName($nomX);  
        $DataSet->SetYAxisName("Miles(S/.)");  
        // Se inicializa el gráfico
        $Test = new pChart(700,230);
        $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",8);
        $Test->setGraphArea(50,30,680,200);
        $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240);
        $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230);
        $Test->drawGraphArea(255,255,255,TRUE);
        $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_ADDALL,150,150,150,TRUE,0,2,TRUE);
        $Test->drawGrid(4,TRUE,230,230,230,50);
         // Draw the 0 line
        $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",6);
        $Test->drawTreshold(0,143,55,72,TRUE,TRUE);
         // Draw the bar graph
         $Test->drawStackedBarGraph($DataSet->GetData(),$DataSet->GetDataDescription(),100);
         // Finish the graph
        $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",8);
        $Test->drawLegend(10,10,$DataSet->GetDataDescription(),255,255,255);
        $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",10);
        $Test->drawTitle(50,22,"Utilidad",50,50,50,585);
        $Test->Render(RUTA_IMAGENES."Utilidad".$user.".png");
       }
       
       public function impriDemanda(){
           $inicio= $this->input->get('inicio');
            $fin= $this->input->get('fin');    
            $intervalo= $this->input->get('intervalo');  
            $fechaIni=  date('Y-m-d', strtotime($inicio));
            $fechaFin=  date('Y-m-d', strtotime($fin));
            $session_data = $this->session->userdata['logged_in'];
            $user=$session_data['user_id'];
            $intervalos=$this->generarIntervalos($fechaIni, $fechaFin, $intervalo);       
            $numElem=count($intervalos);
            $valoresTabla=array();

            $cabeceras=array('Categorías');
            // Definición de datos
            $DataSet = new pData;
            $puntos=array();
            $etiquetas=array();
            $m=1;
        $val=array();
        $categorias=$this->pedido_model->comboTrabajosAll($user); 
            foreach($categorias as $categ){//se calcula el indicador por cada trabajo
                $val=array();
                $puntos=array();                       
                array_push($val,$categ['label']);            
                for($i=0;$i<$numElem;$i++){//se obtiene los indicadores por cada intervalo            
                $nuevoInterval=$intervalos[$i];
                $cantTrabajos=array();            
                if($i!=($numElem-1)){
                $cantTrabajos= $this->reporte_model->CantTrabajos($fechaIni,$fechaFin,$user,false,$categ['value']);
                }
                else $cantTrabajos= $this->reporte_model->CantTrabajos($fechaIni,$fechaFin,$user,true,$categ['value']);
                $cant=0;
                if(count($cantTrabajos)!=0){
                    $number=$cantTrabajos[0]['suma'];
                    $$cant=$number;//indicador en porcentaje
                }
                array_push($puntos, $cant);
                array_push($val,$$cant);//para la tabla
                }
                array_push($valoresTabla,$val); 
                unset($val);//para la tabla
            $DataSet->AddPoint($puntos,"Serie".$m);
            unset($puntos);//para la tabla
            $DataSet->SetSerieName($categ['label'],"Serie".$m);
            $DataSet->AddSerie("Serie".$m);
            $m++;
            }
            $etique='';

            for($i=0;$i<$numElem;$i++){//se forma las etiquetas
                $nuevoInterval=$intervalos[$i];
                if($intervalo=='A'){
                    $etique=date('Y', strtotime($nuevoInterval['inicio']));
                }
                else {
                    $anio=date('Y', strtotime($nuevoInterval['inicio']));
                    $mes=date('m', strtotime($nuevoInterval['inicio']));
                    $etique=$mes.' / '.$anio;
                }
                array_push($etiquetas, $etique);
                array_push($cabeceras,$etique); //Cabeceras para las tablas
            }

            $DataSet->AddPoint($etiquetas,"Serie".$m);          
            $DataSet->SetAbsciseLabelSerie("Serie".$m);           
            $nomX='';
            if($intervalo=='A'){
                    $nomX='Años';
                }
                else {
                    $nomX='Meses';
                }
            $DataSet->SetXAxisName($nomX);  
            $DataSet->SetYAxisName("Cantidad Trabajos");  
            // Se inicializa el gráfico
            $Test = new pChart(700,230);  
            $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",8);  
            $Test->setGraphArea(50,30,680,200);  
            $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240);  
            $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230);  
            $Test->drawGraphArea(255,255,255,TRUE);
            $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_ADDALL,150,150,150,TRUE,0,2,TRUE);  
            $Test->drawGrid(4,TRUE,230,230,230,50); 
            // Draw the 0 line
            $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",6);  
            $Test->drawTreshold(0,143,55,72,TRUE,TRUE);
            // Draw the bar graph  
            $Test->drawStackedBarGraph($DataSet->GetData(),$DataSet->GetDataDescription(),TRUE); 
            // Write values on Serie1 & Serie2  
            $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",8);     
            $Test->writeValues($DataSet->GetData(),$DataSet->GetDataDescription(),"Serie3"); 
            // Finish the graph  
            $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",8);  
            $Test->drawLegend(596,150,$DataSet->GetDataDescription(),255,255,255);  
            $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",10);  
            $Test->drawTitle(50,22,"Trabajos",50,50,50,585);  
            $Test->Render(RUTA_IMAGENES."Trabajos".$user.".png");
            
            //se general el pdf
            $this->reportes('ReportedeDemanda',RUTA_IMAGENES."Trabajos".$user.".png",'Reporte de Demanda',$cabeceras,$valoresTabla);
       }
       
       public function impriProduccion(){
           $inicio= $this->input->get('inicio');
        $fin= $this->input->get('fin');       
        $fechaIni=  date('Y-m-d', strtotime($inicio));
        $fechaFin=  date('Y-m-d', strtotime($fin));
        $session_data = $this->session->userdata['logged_in'];
        $user=$session_data['user_id'];//$this->input->post('adel');       
        $estados=$this->reporte_model->CategoriaPedidos();       
        $numElem=count($estados);
        $valoresTabla=array();        
        $cabeceras=array();
         // Definición de datos
        $DataSet = new pData;
        $valores=array();
        $etiquetas=array();  
        $suma=0;
        for($i=0;$i<$numElem;$i++){
            $est=$estados[$i];
            $cantidad=array();
            if($i!=($numElem-1)){
                $cantidad= $this->reporte_model->CantItem($fechaIni,$fechaFin,$user,false,$est['IdCategoria']);
            }
            else $cantidad= $this->reporte_model->CantItem($fechaIni,$fechaFin,$user,true,$est['IdCategoria']);
            $cant=0;
            $etique=$est['Nombre'];
            if(count($cantidad)!=0){
                $cant=$cantidad[0]['cant'];//utilidad en miles
            }
            $suma+=intval($cant);
            array_push($valores,$cant);
            $fila=array($est['Nombre'],$cant);
            array_push($valoresTabla, $fila);
            unset($fila);          
            array_push($etiquetas, $etique);
            
        }
        array_push($cabeceras,'Categoría','Número de Itemes');
        if($suma!=0){
            $DataSet->AddPoint($valores,"Serie1");  
            $DataSet->AddPoint($etiquetas,"Serie2");
        }
        else{
            $DataSet->AddPoint(100,"Serie1");  
            $DataSet->AddPoint('Ninguno',"Serie2");
        }
          
        $DataSet->AddAllSeries();
       
        $DataSet->SetAbsciseLabelSerie("Serie2"); 
        // Se inicializa el gráfico
         $Test = new pChart(380,200);  
        $Test->drawFilledRoundedRectangle(7,7,373,193,5,240,240,240);  
        $Test->drawRoundedRectangle(5,5,375,195,5,230,230,230);  
         // Draw the 0 line
        $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",8);  
        $Test->drawPieGraph($DataSet->GetData(),$DataSet->GetDataDescription(),150,90,110,PIE_PERCENTAGE,TRUE,50,20,5);  
        $Test->drawPieLegend(310,15,$DataSet->GetData(),$DataSet->GetDataDescription(),250,250,250);
        $Test->Render(RUTA_IMAGENES."Produccion".$user.".png"); 
        
        //se general el pdf
            $this->reportes('ReportedeProduccion',RUTA_IMAGENES."Produccion".$user.".png",'Reporte de Producción',$cabeceras,$valoresTabla);
       }
        public function impriPedidos(){
            $inicio= $this->input->get('inicio');
        $fin= $this->input->get('fin');       
        $fechaIni=  date('Y-m-d', strtotime($inicio));
        $fechaFin=  date('Y-m-d', strtotime($fin));
        $session_data = $this->session->userdata['logged_in'];
        $user=$session_data['user_id'];//$this->input->post('adel');       
        $estados=$this->reporte_model->EstadosPedidos();       
        $numElem=count($estados);
        $valoresTabla=array();        
        $cabeceras=array();
         // Definición de datos
        $DataSet = new pData;
        $valores=array();
        $etiquetas=array();  
        $suma=0;
        for($i=0;$i<$numElem;$i++){
            $est=$estados[$i];
            $cantidad=array();
            if($i!=($numElem-1)){
                $cantidad= $this->reporte_model->CantPedidos($fechaIni,$fechaFin,$user,false,$est['IdEstadoPedido']);
            }
            else $cantidad= $this->reporte_model->CantPedidos($fechaIni,$fechaFin,$user,true,$est['IdEstadoPedido']);
            $cant=0;
            $etique=$est['Descripcion'];
            if(count($cantidad)!=0){
                $cant=$cantidad[0]['cant'];//utilidad en miles
            }
            $suma+=intval($cant);
            array_push($valores,$cant);
            $fila=array($est['Descripcion'],$cant);
            array_push($valoresTabla, $fila);
            unset($fila);          
            array_push($etiquetas, $etique);
            
        }
        
        array_push($cabeceras,'Estado','Número de Pedido');
        if($suma!=0){
            $DataSet->AddPoint($valores,"Serie1");  
            $DataSet->AddPoint($etiquetas,"Serie2");
        }
        else{
            $DataSet->AddPoint(100,"Serie1");  
            $DataSet->AddPoint('Ninguno',"Serie2");
        }
          
        $DataSet->AddAllSeries();
       
        $DataSet->SetAbsciseLabelSerie("Serie2"); 
        // Se inicializa el gráfico
         $Test = new pChart(380,200);  
        $Test->drawFilledRoundedRectangle(7,7,373,193,5,240,240,240);  
        $Test->drawRoundedRectangle(5,5,375,195,5,230,230,230);  
         // Draw the 0 line
        $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",8);  
        $Test->drawPieGraph($DataSet->GetData(),$DataSet->GetDataDescription(),150,90,110,PIE_PERCENTAGE,TRUE,50,20,5);  
        $Test->drawPieLegend(310,15,$DataSet->GetData(),$DataSet->GetDataDescription(),250,250,250);
        $Test->Render(RUTA_IMAGENES."Pedidos".$user.".png"); 
        //se general el pdf
            $this->reportes('ReportedePedidos',RUTA_IMAGENES."Pedidos".$user.".png",'Reporte de Pedidos',$cabeceras,$valoresTabla);
        }
        public function impriUtil(){
            $inicio= $this->input->get('inicio');
        $fin= $this->input->get('fin');
        $intervalo= $this->input->get('intervalo');
        $fechaIni=  date('Y-m-d', strtotime($inicio));
        $fechaFin=  date('Y-m-d', strtotime($fin));
        $session_data = $this->session->userdata['logged_in'];
        $user=$session_data['user_id'];//$this->input->post('adel');       
        $intervalos=$this->generarIntervalos($fechaIni, $fechaFin, $intervalo);       
        $numElem=count($intervalos);
        $valoresTabla=array();
        
        $cabeceras=array();
         // Definición de datos
        $DataSet = new pData;
        $puntos=array();
        $etiquetas=array();
        for($i=0;$i<$numElem;$i++){
            $val=array();
            $nuevoInterval=$intervalos[$i];
            $utilidad=array();
            if($i!=($numElem-1)){
                $utilidad= $this->reporte_model->Utilidad($nuevoInterval['inicio'],$nuevoInterval['fin'],$user,false);
            }
            else $utilidad= $this->reporte_model->Utilidad($nuevoInterval['inicio'],$nuevoInterval['fin'],$user,true);
            $util=0;
            $etique='';
            if(count($utilidad)!=0){
                $util=floatval ($utilidad[0]['util'])/1000;//utilidad en miles
            }
            
            if($intervalo=='A'){
                $etique=date('Y', strtotime($nuevoInterval['inicio']));
            }
            else {
                $anio=date('Y', strtotime($nuevoInterval['inicio']));
                $mes=date('m', strtotime($nuevoInterval['inicio']));
                $etique=$mes.' / '.$anio;
            }
            array_push($val,$nuevoInterval['inicio'], $nuevoInterval['fin'],$util);
            array_push($valoresTabla,$val); 
            unset($val);
            array_push($puntos, $util);
            array_push($etiquetas, $etique);
        }
        array_push($cabeceras,'Fecha Inicio','Fecha Fin','Utilidad (Miles S/.)');       
        $DataSet->AddPoint($puntos,"Serie1");
        $DataSet->AddPoint($etiquetas,"Serie2");
        $DataSet->AddSerie("Serie1");
        $DataSet->SetAbsciseLabelSerie("Serie2");        
        $DataSet->SetSerieName("Utilidad","Serie1");
        $DataSet->SetXAxisFormat("Meses");
        $nomX='';
        if($intervalo=='A'){
                $nomX='Años';
            }
            else {
                 $nomX='Meses';
            }
        $DataSet->SetXAxisName($nomX);  
        $DataSet->SetYAxisName("Miles(S/.)");  
        // Se inicializa el gráfico
        $Test = new pChart(700,230);
        $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",8);
        $Test->setGraphArea(50,30,680,200);
        $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240);
        $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230);
        $Test->drawGraphArea(255,255,255,TRUE);
        $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_ADDALL,150,150,150,TRUE,0,2,TRUE);
        $Test->drawGrid(4,TRUE,230,230,230,50);
         // Draw the 0 line
        $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",6);
        $Test->drawTreshold(0,143,55,72,TRUE,TRUE);
         // Draw the bar graph
         $Test->drawStackedBarGraph($DataSet->GetData(),$DataSet->GetDataDescription(),100);
         // Finish the graph
        $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",8);
        $Test->drawLegend(10,10,$DataSet->GetDataDescription(),255,255,255);
        $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",10);
        $Test->drawTitle(50,22,"Utilidad",50,50,50,585);
        $Test->Render(RUTA_IMAGENES."Utilidad".$user.".png");
        //se general el pdf
            $this->reportes('ReportedeUtilidad',RUTA_IMAGENES."Utilidad".$user.".png",'Reporte de Utilidad',$cabeceras,$valoresTabla);
        }
        
        public function impriTiempos(){
            
             $inicio= $this->input->get('inicio');
        $fin= $this->input->get('fin');
        $intervalo= $this->input->get('intervalo');
        $trabajos= explode(',',$this->input->get('trab'));        
        $fechaIni=  date('Y-m-d', strtotime($inicio));
        $fechaFin=  date('Y-m-d', strtotime($fin));
        $session_data = $this->session->userdata['logged_in'];
        $user=$session_data['user_id'];       
              
        $intervalos=$this->generarIntervalos($fechaIni, $fechaFin, $intervalo);       
        $numElem=count($intervalos);
        $valoresTabla=array();
  
        $cabeceras=array('Trabajos');
         // Definición de datos
        $DataSet = new pData;
        $puntos=array();
        $etiquetas=array();
        $m=1;
       $val=array();
        foreach($trabajos as $trab){//se calcula el indicador por cada trabajo
            $val=array();
            $puntos=array();
            $nomtrab=$this->pedido_model->obtenTrabajo($user,$trab);            
            array_push($val,$nomtrab[0]['nom']);            
            for($i=0;$i<$numElem;$i++){//se obtiene los indicadores por cada intervalo
            
            $nuevoInterval=$intervalos[$i];
            $indicxTrab=array();            
                if($i!=($numElem-1)){
                $indicxTrab= $this->reporte_model->CacularIndicador($nuevoInterval['inicio'],$nuevoInterval['fin'],$user,0,$trab);
                }
                else $indicxTrab= $this->reporte_model->CacularIndicador($nuevoInterval['inicio'],$nuevoInterval['fin'],$user,1,$trab);
                $indica=0;
                if(count($indicxTrab)!=0){
                    $number=floatval($indicxTrab[0]['indicador'])*100;
                    $indica=number_format($number,2,'.','');//indicador en porcentaje
                }
                array_push($puntos, $indica);
                array_push($val,$indica);//para la tabla
            }
            array_push($valoresTabla,$val); 
            unset($val);//para la tabla
           $DataSet->AddPoint($puntos,"Serie".$m);
           unset($puntos);//para la tabla
           $DataSet->SetSerieName($nomtrab[0]['nom'],"Serie".$m);
           $DataSet->AddSerie("Serie".$m);
           $m++;
        }
         $etique='';
         
          for($i=0;$i<$numElem;$i++){//se forma las etiquetas
              $nuevoInterval=$intervalos[$i];
              if($intervalo=='A'){
                $etique=date('Y', strtotime($nuevoInterval['inicio']));
            }
            else {
                $anio=date('Y', strtotime($nuevoInterval['inicio']));
                $mes=date('m', strtotime($nuevoInterval['inicio']));
                $etique=$mes.' / '.$anio;
            }
            array_push($etiquetas, $etique);
            array_push($cabeceras,$etique); //Cabeceras para las tablas
          }
         
          $DataSet->AddPoint($etiquetas,"Serie".$m);          
          $DataSet->SetAbsciseLabelSerie("Serie".$m);           
        $nomX='';
        if($intervalo=='A'){
                $nomX='Años';
            }
            else {
                 $nomX='Meses';
            }
        $DataSet->SetXAxisName($nomX);  
        $DataSet->SetYAxisName("Índice");  
        // Se inicializa el gráfico
        $Test = new pChart(700,230);
        $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",8);
        $Test->setGraphArea(70,30,680,200);     
        $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240);     
        $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230);     
        $Test->drawGraphArea(255,255,255,TRUE);
        $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,0,2);     
        $Test->drawGrid(4,TRUE,230,230,230,50); 
         // Draw the 0 line
        $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",6);     
        $Test->drawTreshold(0,143,55,72,TRUE,TRUE); 
          // Draw the line graph  
        $Test->drawLineGraph($DataSet->GetData(),$DataSet->GetDataDescription());     
        $Test->drawPlotGraph($DataSet->GetData(),$DataSet->GetDataDescription(),3,2,255,255,255); 
         // Finish the graph
        $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",8);     
        $Test->drawLegend(75,35,$DataSet->GetDataDescription(),255,255,255);     
        $Test->setFontProperties(RUTA_LIBRERIA."Fonts/tahoma.ttf",10);     
        $Test->drawTitle(60,22,"Tiempos",50,50,50,585);     
        $Test->Render(RUTA_IMAGENES."Tiempos".$user.".png");
             //se general el pdf
            $this->reportes('ReportedeTiempos',RUTA_IMAGENES."Tiempos".$user.".png",'Reporte de Tiempos',$cabeceras,$valoresTabla);
        }
        function prueba(){
    echo "Funciona bien";
}
}
?>
